/***************************************************************************
 创建者：华磊
 开始时间：         : 2020.12.12
 copyright            : (C) 深圳市华友高科有限公司
 修改说明：（每次有修改就添加一条，带有 修改人，修改时间，修改描述）

 ***************************************************************************
 *   if条件指令属性编辑视窗测试用代理类
*                                                                         *
 ***************************************************************************/
#ifndef IFINSTRUCTIONDELEGATE_H
#define IFINSTRUCTIONDELEGATE_H

#include "ifinstructiondelegate_global.h"
#include "../IfInstructionView/ifinstructionview.h"
#include <QObject>
#include <QFileInfo>
#include <QFileDialog>
class ProgromListView;
class CommunicateNormalDelegate;
class GlobalData;
/**
 * @brief The IfInstructionDelegate class　if条件指令属性编辑视窗测试用代理类
 */
class IFINSTRUCTIONDELEGATESHARED_EXPORT IfInstructionDelegate : public QObject
{
    Q_OBJECT

public:
    IfInstructionDelegate(GlobalData *globalDataIn,CommunicateNormalDelegate *communicateNormalDelegateIn,
                          ProgromListView *progromListViewIn, QWidget *parent = 0);

    /**
     * @brief initialView　初始化界面类成员变量
     */
    void initialView();


public:
    /**
     * @brief ifInstructionView　界面指针
     */
    IfInstructionView *ifInstructionView;

public slots:
    /**
     * @brief selectJmpSlot　选择JMP处理方式槽函数
     */
    void selectJmpSlot();
    /**
     * @brief selectCallSlot　选择CALL处理方式槽函数
     */
    void selectCallSlot();

    /**
     * @brief cleanNoteSlot　清除指令注释槽函数
     */
    void cleanNoteSlot();

    /**
     * @brief finishEditInstructionSlot　完成指令编辑槽函数
     */
    void finishEditInstructionSlot();
    void showSelectFileName(QString fileName);
    void browseCallProgramSlot(QString oldProgramNameIn);

private:
    CommunicateNormalDelegate *communicateNormalDelegate;
    ProgromListView *progromListView;
    GlobalData *globalData;
};

#endif // IFINSTRUCTIONDELEGATE_H
